package org.app.appjson.reader.interfaces;

/**
 * 词法解析器接口
 * 解析一串字符流，根据词法规则返回词法单元
 * @author lizhongsi
 * @version 1.0
 * @since 1.0
 */
public interface Lexer {

    // 是否存在下一个词法单元
    boolean hasNext();

    //读取一个词法单元，并消费它
    Token next() throws Exception;

    //预览一个词法单元，不消费它
    Token peek() throws Exception;

    // 返回已读取的词法单元在词法单元序列中的位置。从0开始。
    int index();
}
